package com.doubao.wechat.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 退款订单实体类
 */
@Data
@TableName("refund_order")
public class RefundOrder implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 支付订单ID
     */
    private String paymentOrderId;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 商户退款单号
     */
    private String outRefundNo;

    /**
     * 商户订单号
     */
    private String outTradeNo;

    /**
     * 微信支付订单号
     */
    private String tradeNo;

    /**
     * 微信退款单号
     */
    private String refundId;

    /**
     * 退款金额（单位：分）
     */
    private Integer refundAmount;

    /**
     * 退款原因
     */
    private String refundReason;

    /**
     * 退款状态 PROCESSING/SUCCESS/ABNORMAL
     */
    private String status;

    /**
     * 退款成功时间
     */
    private LocalDateTime refundTime;

    /**
     * 退款回调通知数据
     */
    private String notifyData;

    /**
     * 退款资金来源 AVAILABLE:可用余额退款 UNAVAILABLE:不可用余额退款
     */
    private String refundFundsAccount;

    /**
     * 创建时间
     */
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    private LocalDateTime updatedAt;
}